package com.masterclient.app.modules.order.contract;

import com.eoner.baselibrary.base.BasePresenter;
import com.eoner.baselibrary.base.BaseView;
import com.eoner.baselibrary.bean.order.OrderListBean;
import com.eoner.baselibrary.bean.order.OrderSendDeliveryBean;
import com.eoner.baselibrary.bean.order.PayInfoBean;
import com.eoner.baselibrary.bean.order.PaymentBean;
import com.eoner.baselibrary.bean.order.PresentationShareBean;

import java.util.Map;

/**
 * 作者：sean
 * 创建时间：2017/7/27 10:41
 * 功能说明：
 */

public interface OrderListContract {

    interface View extends BaseView {
      void showOrderList(OrderListBean.DataBean dataBean);
        void getPaymentSuccess(PaymentBean.DataBean dataBean);
        void removeOrderSuccess();
        void cancleOrderSuccess();
        void recieverOrderSuccess();
        void operateSuccess(int position, String msg);
        void showFail(String msg);
        void loadNull();
        void sendDeliverySuccess(int position, OrderSendDeliveryBean bean);


        void setAliPrePayInfo(PayInfoBean.DataBean dataBean);
        void loadFailed();
        void modifyAddressSuccess(String msg);
        void modifyAddressFail(String msg);

        void checkGoodsSuccess(Map<String,String> map);
        void getShareDataSuccess(PresentationShareBean shareBean);
    }

    abstract static class Presenter extends BasePresenter<View> {

        @Override
        public void onStart() {

        }

        public abstract void getShareData(String order_no);
        public abstract void purchaseOrderList(String page,String page_size,String status);
        public abstract void saleOrdersList(String is_auto, String status, String type,
                                            String is_screen , String page, String pageSize);
        public abstract void getOrderList(String type,String page,String page_size,String keyword);
        public abstract void recieverOrder(String id);
        public abstract void removeOrder(String id);
        public abstract void cancleOrder(String reason,String id);
        public abstract void payNow(String trade_no);
        public abstract void upReserve(int position,String order_id);
        public abstract void checkGoods(int position,String order_id, String type);
        public abstract void sendDelivery(int position, String order_id);

        public abstract void aliPrepay(String trade_no,String payment_id);
        public abstract void modifyAddress(String trade_id,String order_id,String address_id);
    }
}